package controlador;

import interfaz.GUIUsuarios;
import interfaz.IVista;
import interfaz.InterfazAdministrador;
import interfaz.InterfazAlmacen;
import interfaz.InterfazCursos;
import interfaz.InterfazIncidencias;
import interfaz.ListaPedidos;
import interfaz.Registro;

import java.awt.event.ActionEvent;

import sistemaUsuarios.Usuario;
import fachada.FachadaAlmacen;
import fachada.FachadaCursos;
import fachada.FachadaUsuario;
import fachada.FachadaIncidencias;
import fachada.IFachada;
import fixpack.Fixpack;

public class ControladorInterfazAdmin extends ControladorAbstracto<FachadaUsuario,InterfazAdministrador>{

	public ControladorInterfazAdmin(IFachada fachada, IVista vista) {
		super(fachada, vista);
		
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		String command = e.getActionCommand();
		System.out.println(command);
		
		if(command.equalsIgnoreCase("Usuarios")){
			
			GUIUsuarios vUsuarios = new GUIUsuarios();
			ControladorGUIUsuarios cUsuarios = new ControladorGUIUsuarios(this.fachada,vUsuarios);
			
			vUsuarios.populateTable(this.fachada.obtenerListaUsuarios(), cUsuarios);
			
			vUsuarios.registerListener(cUsuarios);
			this.vista.setPanelFuncionalidad(vUsuarios);
			this.vista.update();

		}else if(command.equalsIgnoreCase("Escuela")){
			
			InterfazCursos vCursos = new InterfazCursos();
			ControladorCursos cCursos = new ControladorCursos(new FachadaCursos(), vCursos);
			vCursos.registerListener(cCursos);
			
			this.vista.setPanelFuncionalidad(vCursos);
			this.vista.update();
			
		}else if(command.equalsIgnoreCase("ModificarDatos")){
			Usuario user = Fixpack.getUsuarioEjecuta();
			
			Registro vModificar = new Registro(false,true,user.getId());
			ControladorRegistro cModificar = new ControladorRegistro(this.fachada,vModificar);
			
			vModificar.setTxtNombre(user.getNombre());
			vModificar.setTxtApellidos(user.getApellido());
			vModificar.setTxtDNI(user.getDni());
			vModificar.setTxtEmail(user.getEmail());
			vModificar.setTxtTelefono(user.getTelefono());
			vModificar.setTxtDireccion(user.getUsuario());
			vModificar.setTxtProvincia(user.getProvincia());
			vModificar.setTxtCodPostal(user.getCodPostal());
			vModificar.setTxtUsuario(user.getUsuario());
			
			vModificar.registerListener(cModificar);
			this.vista.setPanelFuncionalidad(vModificar.getPnlRegistro());
			this.vista.update();
			
		}else if(command.equalsIgnoreCase("almacen")){
			
			InterfazAlmacen vAlmacen = new InterfazAlmacen();
			ControladorAlmacen cAlmacen = new ControladorAlmacen(new FachadaAlmacen(), vAlmacen);
			
			vAlmacen.registerListener(cAlmacen);
			this.vista.setPanelFuncionalidad(vAlmacen);
			this.vista.update();
		}
		else if(command.equalsIgnoreCase("incidencias")){
			FachadaIncidencias fachadaIncidencias = new FachadaIncidencias();
			InterfazIncidencias vIncidencias = new InterfazIncidencias();
			//0 para admin.
			ControladorIncidencias cIncidencias= new ControladorIncidencias(fachadaIncidencias,vIncidencias);
			cIncidencias.setRoll(1);
			
			vIncidencias.registerListener(cIncidencias);
			if (cIncidencias.getRoll()==1){
				//vIncidencias.populateTable(fachadaIncidencias.consultarIncidenciasTecnico("tecnico1"), cIncidencias);
				vIncidencias.populateTable(fachadaIncidencias.consultarIncidencias(), cIncidencias);
			}
			
			this.vista.setPanelFuncionalidad(vIncidencias);
			this.vista.update();
			vIncidencias.update();
		}
		
		
		
	}

}
